home *** CD-ROM | disk | FTP | other *** search
/ 130 MIDI Tool Box / 130 MIDI Tool Box.iso / m2m_v12 / mod2midi.doc < prev    next >
Text File  |  1993-02-27  |  22KB  |  455 lines

  1. MOD2MIDI.DOC
  2. The MODfile to MIDIfile converter.
  3. Written and designed by Alexander Stock.
  4.  
  5.  
  6.   CONTENTS
  7.  
  8.            MOD2MIDI.EXE    -- the program.
  9.            MOD2MIDI.DOC    -- this file.
  10.            GUITAROU.MOD    -- a sample MODfile.
  11.            GUITAROU.MID    -- the finished product.
  12.            GUITAROU.SET    -- the saved settings file.
  13.  
  14.  
  15.   INTRODUCTION
  16.  
  17.     Soon after my introduction to MODfiles, a mere two years ago, I became
  18.   aware of their limitations. Not the least of these is their incompatibility
  19.   with standard musical notation. They are also limited by the quality of
  20.   their recording, and the hardware used to play them back. But there is a
  21.   lot of good music in mod format, and I wanted to have access to it. I felt
  22.   the need for a program to convert these MODfiles into MIDIfiles that I
  23.   could play on my sound card. This would give me better quality sound, as
  24.   well as allow me to view the music in standard notation, and manipulate it
  25.   using the music software provided with my card. From this simple idea grew
  26.   a quite complicated algorithm, with many added features. This is its first
  27.   incarnation.
  28.  
  29.  
  30.   FLOWCHART
  31.                          ╔════════════╗
  32.             FILE.MOD  => ║MOD2MIDI.EXE║ =>  FILE.MID
  33.            [FILE.SET] => ╚════════════╝ => [FILE.SET]
  34.                                
  35.                    User input ─┘
  36.  
  37.     MOD2MIDI takes as input a 15 or 31 sample MODfile, and, with data from
  38.   the user, generates a type one MIDIfile, with six tracks and fourty-eight
  39.   ticks per crotchet. In addition, it generates a settings file, to save the
  40.   user information, and loads this file if the same MODfile is ever worked on
  41.   again.
  42.  
  43.  
  44.   USAGE
  45.  
  46.     MOD2MIDI [file[.mod]]
  47.  
  48.     MOD2MIDI can be run from the command line. It can accept the name of a
  49.   MODfile as a parameter, but if the name is not given, or the file does not
  50.   exist, a window will come up, asking for the name of the MODfile. Enter the
  51.   path and name of the file, as requested, and press Enter or Return. The
  52.   '.MOD' extension is assumed, but if another extension is specified, the
  53.   program will look for that file. If the file does not exist, another window
  54.   will appear and ask you to try again.
  55.  
  56.     Once the MODfile has been located, a table will appear containing
  57.   information on the five midi tracks.  These tracks are ...
  58.  
  59.     Track One
  60.     Track Two          Correspond to the four MOD tracks.
  61.     Track Three        Instrumental samples are sent to these tracks.
  62.     Track Four
  63.  
  64.     Percussion         Rhythm and sound effect samples are sent to this track.
  65.  
  66.     You must enter the data by using the cursor keys to move the cursor onto
  67.   the field you want to change, and pressing return. A window will appear
  68.   below the table, asking you for the new information. The columns of the
  69.   table are ...
  70.  
  71.   Channel  The midi channel on which each track appears. Each of the four
  72.            instrumental tracks must be set to different  instrumental
  73.            channels of your sound card. The percussion track must be set to
  74.            the rhythm and sound effect channel of your sound card. Channels
  75.            are numbered from 1 to 16.
  76.  
  77.   Pan      The balance or panpot associated with each track. Pan position is
  78.            from -7 on the far right, to 7 on the far left. Pan does not apply
  79.            to the percussion track.
  80.  
  81.   Name     The name of each track. This is a sixteen character string saying
  82.            anything you like. Most midi players will show track names.
  83.  
  84.     The default settings are ...
  85.  
  86.                  Track     Pan           Name
  87.                  -----     ---     ----------------
  88.     Track One      2        7
  89.     Track Two      3       -7
  90.     Track Three    4       -7
  91.     Track Four     5        7
  92.     Percussion    10       N/A
  93.  
  94.     Once the table is to your satisfaction, press Escape when no window is
  95.   asking for more information. After a short while, another table will
  96.   appear, with information on the samples. You must complete this table in
  97.   the same way. Only eight of the fifteen or thirty-one samples are displayed
  98.   at once. Use Page Up and Page Down to view the previous or next eight
  99.   samples. Samples that are not valid are filled in yellow. The columns of
  100.   this table are ...
  101.  
  102.   Name         Twenty two characters, identifying the sample. These are taken
  103.                from the MODfile, and are not used in the MIDIfile.They cannot
  104.                be changed by the user.
  105.  
  106.   Percussion   Whether the sample is a percussion sample or an instrumental
  107.                sample. Instrumental samples are played on the channel
  108.                corresponding to the track on which they occur. Percussion
  109.                samples are played on the rhythm and sound effect channel. Their
  110.                pitch is ignored by the converter, and Chord and Transpose do
  111.                not apply.
  112.  
  113.   Program      Which midi program or percussion effect is to be played in the
  114.                place of the sample. Consult your sound card manual for the full
  115.                list of programmes and effects available to you. Midi programmes
  116.                are different from percussion effect, and are used differently
  117.                by the converter, but are entered in the same column, in the
  118.                same way. Program is a number from 0 to 127.
  119.  
  120.   Volume       Some samples are not recorded at normal volume. In the midi
  121.                file, they may dominate the music, or be hidden by other
  122.                samples. Volume allows you to change the volume at which the
  123.                midi programmes are played. A Volume of 37 will mean that the
  124.                program is always played at maximum volume, and a Volume of -73
  125.                means that the program will always be played with zero volume. A
  126.                Volume change of 10 will double the playing volume, clipping it
  127.                to maximum, and a Volume of -10 will halve the playing volume.
  128.  
  129.   Chord        Some samples are not simple notes, but are chords. If chord is
  130.                set to Minor, the converter will build a minor triad, rather
  131.                than a single note whenever that sample appears. Likewise, if
  132.                Chord is set to Major, the sample will be played as a major
  133.                triad, and if Chord is set to Fifth, a perfect fifth. Chord is
  134.                not applicable to percussion samples.
  135.  
  136.   Transpose    Some samples are not recorded at the pitch at which they will be
  137.                played. Mostly they will need to be transposed up or down an
  138.                octave (12 semitones). Some will need to be transposed by other
  139.                intervals to make them sound right. Transpose is the number of
  140.                semitones (-128 to 127) by which the sample will be transposed
  141.                when it is played. Transpose is not applicable to percussion
  142.                samples.
  143.  
  144.     The default settings for each valid sample are ...
  145.  
  146.     Percussion   Program     Chord    Transpose
  147.     ----------   -------     -----    ---------
  148.         No          0        None         0
  149.  
  150.     When you have finished adjusting this table, press Escape. You will then
  151.   be asked whether you want to save your settings. Press any key to toggle
  152.   your choice, and return to choose. If you indicate Yes, a settings file
  153.   will be generated, so that you can re-start from where you left off if you
  154.   want to convert the MODfile again. If you indicate No, you will have to
  155.   start from the previously saved, or default settings you started with last
  156.   time, if you ever want to work on this MODfile again. You will next be
  157.   asked if you want to continue with the conversion. If you indicate Yes, the
  158.   program will begin conversion. A window will appear, indicating which
  159.   pattern is being converted, and a status bar indicates the program's
  160.   progress. When this is done, the program is finished, and a MIDIfile with
  161.   the same name as the MODfile will be generated, as you have specified.
  162.  
  163.  
  164.   HOW IT WORKS
  165.  
  166.     Once all the parameters have been specified, MOD2MIDI generates six
  167.   temporary files in the directory where it is run from. Four are the four
  168.   instrumental midi channels, one is the percussion midi channel, and one is
  169.   the midi channel for tempo changes. These temporary files are used to save
  170.   memory in favour of disk space, and they limit the speed of the program by
  171.   the speed of the disk drive. It is best to run MOD2MIDI from a hard disk.
  172.   MOD2MIDI runs through each pattern in the MODfile in the order in which
  173.   they would be played and converts the information to midi data. As the
  174.   MODfile is converted, the midi data is added to the appropriate files. Once
  175.   all the patterns have been converted, the six files are copied, adding
  176.   headers and tails, into a single MIDIfile. The temporary files are then
  177.   deleted.
  178.  
  179.  
  180.   FEATURES
  181.  
  182.     MOD2MIDI does not support all of the features of a MODfile, but it
  183.   provides some features available to MIDIfiles.
  184.  
  185.   MODfile Features
  186.  
  187.     Pitch Bend Up          --  Not Supported
  188.     Pitch Bend Down        --  Not Supported
  189.     Pitch Bend to Note     --  Not Supported
  190.     Vibrato                --  Not Supported
  191.     Volume Slide           --  Not Supported
  192.     Position Jump          --  Treated as Pattern Break.
  193.     Set Volume             --  Supported for instrumental samples and for the
  194.                                first time percussion samples are played.
  195.     Pattern Break          --  Supported
  196.     Set Speed              --  Supported
  197.  
  198.   MIDIfile Features
  199.  
  200.     Track Pan
  201.     Track Name
  202.  
  203.  
  204.     Of the features not carried into the MIDIfile, the pitch bends are the
  205.   most significant. These would be very difficult to support, because of the
  206.   quantum nature of midi data, which cannot be overcome in the same way that
  207.   mod-players overcome the same problem with mod data. Vibrato and volume
  208.   slides are hardly ever used. Position jump is a method by which a MODfile
  209.   can be made to repeat endlessly. This cannot be supported by the midi
  210.   format, so Position Jumps are ignored, and treated like Pattern Breaks.
  211.   This should not produce any strange discontinuities in most cases. Position
  212.   jumps are also hardly ever used.
  213.  
  214.     Pan in MODfiles is available to those of us with a stereo D/A converter,
  215.   or a SoundBlaster Pro. However, two tracks are always played full left, and
  216.   the other two are always played full right. The converted MIDIfile has each
  217.   track panned to any one of fifteen different positions, at your
  218.   specification. The Pan position is a property of each instrumental track,
  219.   and can not be made to change during the playing of the MIDIfile. Each
  220.   track can also be named. The names will usually be displayed by the midi
  221.   player.
  222.  
  223.  
  224.   LIMITATIONS AND PROBLEMS
  225.  
  226.     MOD2MIDI is limited in many ways by incompatibilities between the
  227.   different music formats, and the capabilities of your sound card. MOD2MIDI
  228.   requires a lot of information from the user, and the resulting MIDIfile is
  229.   rarely perfect. These are some of the problems that can occur.
  230.  
  231.     Since samples can only be assigned to midi programmes or percussion
  232.   effects, samples of speech or phrases of music can not be adequately
  233.   represented. Some sound cards can play sound effects on the percussion
  234.   channel, which, with a little imagination, can cope with some complicated
  235.   samples.
  236.  
  237.  
  238.     Because pitch bends are not supported, MODfiles using pitch bends may
  239.   sound wrong in places. This can be fixed if you convert the MIDIfile to the
  240.   format of your music software, and put the pitch bends in yourself. Most
  241.   music software comes with a midi conversion program. This is a method for
  242.   fixing most problems with the MOD2MIDI MIDIfiles. There are also editors
  243.   for the midi format, which can solve some of these problems.
  244.  
  245.     The midi format requires each note to be turned on, and turned off again,
  246.   whereas the MODfile format only requires that each note be turned on.
  247.   MOD2MIDI only knows that a note should be turned off when the next note
  248.   arrives on the same track. This causes problems when a track is left alone
  249.   and assumed to be silent. Some mod samples do not sustain, and die away
  250.   quickly if another note is not played. If a sustaining program has been
  251.   chosen for such a sample, it will continue to play until the track would be
  252.   used again. This can be solved by converting the MIDIfile, or by editing
  253.   it, and moving the note off signal to the correct place.
  254.  
  255.     Samples may be recorded too loud or too soft, or at the wrong pitch. They
  256.   sound right in the MODfile, but not in the MIDIfile. Wrong pitch or wrong
  257.   volume can be solved by changing the transpose or volume properties of the
  258.   sample before conversion. This is a process of trial and error.
  259.  
  260.     Midi data can only be fed to a sound facility at a certain rate, which is
  261.   too slow in some cases. Very fast music, or music with a lot of effects,
  262.   will be slowed down by the midi player, because too much information has to
  263.   transmitted at once.
  264.  
  265.     If MOD2MIDI is caused to halt unnaturally, the temporary files may still
  266.   exist. You can delete them if you want, or leave them there.
  267.  
  268.  
  269.   HINTS
  270.  
  271.   --  Get to know the MODfile well before you try to convert it. This will
  272.       tell you what each sample sounds like, and how it is used.
  273.  
  274.   --  Try to assign, if possible, programmes that have no sustain to samples
  275.       that do not sustain, to avoid notes sustaining when they should be
  276.       silent. This isn't always possible.
  277.  
  278.   --  If your sound card doesn't have a Percussion track, you can assign
  279.       percussion samples to rhythm effects on the instrumental channels.
  280.  
  281.   --  You don't need to find programmes or effects that sound exactly like
  282.       the sample. Other programmes will sound different, but still sound
  283.       good. Be imaginative.
  284.  
  285.   --  String samples often need to be transposed up an octave. Bass guitar
  286.       samples sometimes need to be transposed down an octave. Once again,
  287.       it's a case of trial and error. That's why you can save your settings.
  288.  
  289.   --  It is usually a good idea to reduce the volume of chord samples, so
  290.       that the extra notes don't sound overstated.
  291.  
  292.   --  To achieve the discordant effect of some electric guitar samples, try
  293.       adding a fifth to the note. This doesn't sound quite right, but works
  294.       fairly well if you don't have the right sample.
  295.  
  296.   --  Sometimes, invalid samples are used to silence sustaining samples.
  297.       These work fine on MOD2MIDI, but sometimes valid samples are used for
  298.       the same purpose. If you come across a silence sample, don't bother
  299.       about setting a program. Just set the volume to -73, so that the sample
  300.       will always be played silently.
  301.  
  302.   TESTING
  303.  
  304.     Note on Guitarous:
  305.     GUITAROU.MID is the MIDIfile created from GUITAROU.MOD, by MOD2MIDI. The
  306.   instrument settings are in GS standard format. If your sound card is not GS
  307.   standard, then re-convert the file. You will only need to change the
  308.   program settings. GUITAROU.MOD was composed by The WARLOCK / Grace S.
  309.   Apologies that they could not be notified of its inclusion in this package 
  310.   before release.
  311.  
  312.     These are the conclusions of the MODfiles I have tested MOD2MIDI on.
  313.  
  314.     SIMPSONS.MOD
  315.     POWER.MOD       --  Don't bother with these. They contain too much
  316.     WASTE.MOD       --  digitised speech and complex samples.
  317.     TOUCHME.MOD
  318.     etc.
  319.  
  320.     POPCORN.MOD     --  Worked perfectly. One of the first MODfiles I ever
  321.                         converted. Very simple. Only the strings sample needed
  322.                         to be transposed.
  323.  
  324.     AXELF.MOD       --  Midi format could not improve much on the original
  325.                         MODfile. Lots of problems with note sustain.
  326.  
  327.     BREATH.MOD      --  Worked perfectly, and demonstrated the success of the
  328.                         Chord feature. I originally wanted to use this for the
  329.                         demonstration of MOD2MIDI, because it worked so well.
  330.  
  331.     LAMBADA.MOD     --  Not bad. Problems with the volume of samples were solved
  332.                         with the Volume control. The chords and volume changes
  333.                         sounded good.
  334.  
  335.     FAIRLITE.MOD    --  Ended up different, but worked well.
  336.  
  337.     GREENSL1.MOD    --  Because of the numerous volume changes, the midi signals
  338.                         seemed to be arriving late in places. One of the samples
  339.                         had to be transposed by an amount that I never got quite
  340.                         right, but I found an acceptable substitute for the two
  341.                         speech samples.
  342.  
  343.     ALIVE.MOD       --  Although the pitch bends were lost, this MODfile still
  344.                         made a good MIDIfile.
  345.  
  346.     HOUSE_OF.MOD    --  Big problems with sustaining samples and pitch bends.
  347.                         There was also a percussion effect that was played at
  348.                         more than one pitch, so I had to assign it to an
  349.                         instrumental program.
  350.  
  351.     SDMC.MOD        --  This one came out quite good, but there were problems
  352.                         with a sample that seemed to need to be transposed two
  353.                         different ways.
  354.  
  355.     BB2.MOD         --  The MIDIfile provided a much better sound, but without
  356.                         the pitch bends, the brass sounded out of tune in many
  357.                         places.
  358.  
  359.     SHADOWFI.MOD    --  Without pitch bends, I had to use my imagination, but
  360.                         all the volume changes came through, and the effect was
  361.                         preserved. It came out rather good in the end.
  362.  
  363.     OXYGENE.MOD     --  It lost a few volume slides, but they weren't needed. A
  364.                         sound effect was used to replace the wind sample, and I
  365.                         had to be imaginative with most of the other samples.
  366.                         The string chords needed to be hushed quite a bit. All
  367.                         the other volume effects worked well, and it sounded
  368.                         better as a MIDIfile.
  369.  
  370.     GUITAROU.MOD    --  This one used everything MOD2MIDI had, and it sounded
  371.                         quite good. There was a pitch bend or two, but the music
  372.                         lived without them.
  373.  
  374.  
  375.   HIGHER THINGS
  376.  
  377.     Here are some features that may or may not appear in later versions of
  378.   MOD2MIDI.
  379.  
  380.     --  The rest of the MOD effects; pitch bends, etc.
  381.     --  A PWM routine to play the samples when you choose the settings.
  382.     --  A midi routine to play the midi programmes while you choose the
  383.         settings.
  384.     --  Pan as a property of samples instead of tracks.
  385.     --  A library of sample attributes and settings.
  386.     --  MIDI2MOD.
  387.  
  388.  
  389.   CREDITS
  390.  
  391.   Programmer:   Alexander Stock
  392.                 51 Wilpena Street
  393.                 Eden Hills  5050
  394.                 South Australia
  395.                 email: ajstock@teaching.cs.adelaide.edu.au
  396.                 March to October 1993, 1994
  397.  
  398.   Assistance:   Daniel Steer -    lots of help with programming and supply              
  399.                                   of software utilities and MODfiles.
  400.                 email: 9129317s.lux.levels.unisa.edu.au
  401.                 March to October 1993, 1994
  402.  
  403.                 Geoffrey Bennett -     supply of important information and
  404.                                        beta testing.
  405.                 email: geoffrey@tafe.sa.edu.au
  406.                 Always valid
  407.  
  408.     Much thanks also to these accomplished programmers, whose software was in
  409.   constant use during the making of MOD2MIDI.
  410.  
  411.     Mark J. Cox
  412.     m.j.h.cox@bradford.ac.uk
  413.       Modplay Pro Version 2.19b
  414.  
  415.  
  416.     Norman Lin
  417.     norlin@mailhost.ecn.uoknor.edu
  418.       ModEdit v2.0
  419.       ModEdit v3.0
  420.  
  421.  
  422.     Harald Thunem
  423.     thunem@kjemi.unit.no
  424.       HTSCREEN.TPU
  425.  
  426.  
  427.   LEGALITIES
  428.  
  429.     MOD2MIDI is Copyright (c) 1992,1993 by Alexander Stock.
  430.  
  431.     This program is shareware. You are permitted and encouraged to distribute
  432.   this software freely, provided it is not altered in any way. You may use
  433.   this software, without charge, for a trial period of thirty days. After
  434.   this time, you are obliged to register by sending $20 to the author, at the
  435.   above address. Registration of this software entitles the registeree to
  436.   receive a updated version of MOD2MIDI as soon as one becomes available.
  437.   Please indicate 3.5" or 5.25" disk.
  438.  
  439.     No responsibility is taken by the author for any loss or
  440.   damage to property or person caused by this program. MOD2MIDI may not be
  441.   used for any commercial purpose, without written permission from the
  442.   author.
  443.  
  444.     The people credited above are all entitled to a free copy of this
  445.   program, with no ethical obligation, and will be sent one as soon as possible.
  446.  
  447.     MOD2MIDI has been rigorously tested on a Roland LAPC-1 sound card, and a
  448.   Roland Sound Canvas. MOD2MIDI.EXE was written in TurboPascal, using the
  449.   HTScreen unit, by Harald Thunem.
  450.  
  451.     I will not distribute the source code to MOD2MIDI unless I am deeply
  452.   flattered by words of appreciation, or by lots of money. Please contact me,
  453.   and let me know what you think.
  454.  
  455.